Distributed communication of independent autonomous vehicles to provide redundancy and performance

ABSTRACT

A method and system of distributed communication of independent autonomous vehicles to provide redundancy and performance are disclosed. In one embodiment, a set of autonomous vehicles operates in a geographically proximate area through which peer-to-peer communication sessions are established between nearby ones of the set of autonomous vehicles through an ad-hoc network based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles. A central server directly coupled to each of the set of autonomous vehicles establishes centralized communication paths with each of the set of autonomous vehicles through a wide area network. The centralized server processes a communication from adjacent ones of the set of autonomous vehicles when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server.

FIELD OF TECHNOLOGY

This disclosure relates generally to the technical fields of communications and, in one example embodiment, to a method, apparatus, and system of distributed communication of independent autonomous vehicles to provide redundancy and performance.

BACKGROUND

The development and/or use of autonomous vehicles may be impeded by a lack of an effective system and/or method for addressing errors and/or failures of autonomous vehicles operating in an immediate area of other autonomous vehicles. Failing autonomous vehicles may not be able to communicate failures to a server and/or other autonomous vehicles operating in the immediate area. This may cause information of failed and/or failing autonomous vehicles to be lost. As a result, progress toward safe and/or effective autonomous vehicle use may be hindered and/or opportunities for technological, societal, and/or monetary advancement may be lost.

SUMMARY

A method, device and system of distributed communication of independent autonomous vehicles to provide redundancy and performance.

In one aspect, a system includes an ad-hoc network and a set of autonomous vehicles operating in a geographically proximate area through which peer-to-peer communication sessions are established between nearby ones of the set of autonomous vehicles through the ad-hoc network based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles. The system further includes a wide area network and a central server directly coupled to each of the set of autonomous vehicles to establish centralized communication paths with each of the set of autonomous vehicles through the wide area network. The central server processes a communication from adjacent ones of the set of autonomous vehicles when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server due to network failure, a hardware failure, a mechanical failure, and an electrical failure.

A communication preference between each of the adjacent ones of the set of autonomous vehicles in the ad-hoc network may be based on a closest physical proximity of active ones of the set of autonomous vehicles. The communication sessions established between the adjacent ones of the set of autonomous vehicles may be established in a manner that provides a geo-spatial data, a status data, and/or a telemetry data to adjacent vehicles in the ad-hoc network through a redundant array of independent disk based algorithm based on an XOR method of recreating data stored on each of the adjacent vehicles operating in a present geo-spatial area defining each of the adjacent ones of the set of autonomous vehicles.

The adjacent ones of the set of autonomous vehicles may periodically refresh local indexes of available adjacent ones of the set of autonomous vehicles (such that the adjacent ones of the set of autonomous vehicles minimize local storage requirements associated with ones of the set of autonomous vehicles that are no longer adjacent based on a changed location of adjacent ones of the set of autonomous vehicles through state based logic that determines which adjacent ones of the set of autonomous vehicles have presently moved into an adjacently established ad-hoc network including a different set of adjacent ones of the set of autonomous vehicles).

The ad-hoc networks may maintain a unique identifier in a network identification table that may be published to the central server and/or associated adjacent ad-hoc networks. Each of the ad-hoc networks may maintain a geo-fenced region through which each ad-hoc network operates and/or shares geo-fence data with adjacent ad-hoc networks to minimize network geo-spatial overlap between adjacent ad-hoc networks. Each of the unique identifiers of the ad-hoc networks may automatically persist at a geo-defined area each of the ad-hoc networks are associated unique identifiers associated with a geo-defined region in which autonomous vehicles enter and/or depart.

A particular autonomous vehicle may determine if there exists a threshold number of other autonomous vehicles in a particular ad-hoc network when determining whether the particular autonomous vehicle should leave an existing ad-hoc network of the particular autonomous vehicle in a favor of an adjacent ad-hoc network to the existing ad-hoc network. The particular autonomous vehicle may automatically announce itself as a first node in the adjacent ad-hoc network when it is a first vehicle currently in the adjacent ad-hoc network and/or a communication link between the existing ad-hoc networks may be broken because of distance from a node in the existing ad-hoc network.

Each of autonomous vehicles in the existing ad-hoc network may serve as signal extenders by repeating a signal communication in the existing ad-hoc network to facilitate communication strength between autonomous vehicles in the existing ad-hoc network. Each of the autonomous vehicles in the existing ad-hoc network may prefer communications through the existing ad-hoc network instead of communications to the central server when communicating commands related to a transient operational condition of each of the autonomous vehicles, operational instructions that are unlikely to be required beyond a current trip session of each of the autonomous vehicles, and/or based on a privacy preference of owners of each of the autonomous vehicles. The owners of each of the autonomous vehicles may optionally elect to opt-out of networked communications in any of the ad-hoc network and/or the wide area network.

The adjacent ones of the set of autonomous vehicles may automatically transmit emergency commands to the non-functional vehicle when the error condition is detected to permit the non-functional vehicle to enter a safe-mode and navigate to a safe parking location determined based on a visual mapping, a telemetric mapping, and/or a sensory fusion algorithm determining where exists the safe parking location. The set of autonomous vehicles may be a multi-rotor aircraft, a neighborhood rover, an autonomous boat, an autonomous submarine, and/or an autonomous passenger vehicle.

In another aspect, a system includes an ad-hoc network and a set of autonomous vehicles operates in a geographically proximate area through which peer-to-peer communication sessions are established between nearby ones of the set of autonomous vehicles through the ad-hoc network based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles. A wide area network and a central server communicatively coupled with each of the set of autonomous vehicles to establish centralized communication paths with each of the set of autonomous vehicles through the wide area network. The central server processes a communication from adjacent ones of the set of autonomous vehicles when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server. A communication preference between each of the adjacent ones of the set of autonomous vehicles is based on a closest physical proximity of active ones of the set of autonomous vehicles.

In yet another aspect, a method establishes peer-to-peer communication sessions between nearby ones of a set of autonomous vehicles operating in a geographically proximate area, through an ad-hoc network, based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles. Centralized communication paths are established with each of the set of autonomous vehicles through a wide area network, using a central server directly coupled to each of the set of autonomous vehicles. A communication from adjacent ones of the set of autonomous vehicles using the central server when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server due to a network failure, a hardware failure, a mechanical failure, and an electrical failure.

The methods and systems disclosed herein may be implemented in any means for achieving various aspects, and may be executed in a form of a machine-readable medium embodying a set of instructions that, when executed by a machine, cause the machine to perform any of the operations disclosed herein. Other features will be apparent from the accompanying drawings and from the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:

FIG. 1 is a network view of a communication being sent to a central server by at least one of a set of autonomous vehicles, each of the set of autonomous vehicles being communicatively coupled with one another through peer-to-peer communication sessions in an ad-hoc network, according to one embodiment.

FIG. 2 is a functional block diagram illustrating an autonomous vehicle, according to an example embodiment.

FIG. 3 shows a network identification table illustrating data relationships between the ad-hoc network and the set of autonomous vehicles of FIG. 1, according to one embodiment.

FIG. 4 is a table view illustrating the data relationships between the set of autonomous vehicles, the ad-hoc network, and the communication session of FIG. 1, according to one embodiment.

FIG. 5 is a network overlap view of a network geo-spatial overlap between two ad-hoc networks, according to one embodiment.

FIG. 6 is a graphical process flow of a non-functioning autonomous vehicle entering a safe mode and parking in a safe parking location, according to one embodiment.

FIG. 7 is a touch screen view illustrating a command and a privacy preference of an owner, according to one embodiment.

FIG. 8 is a critical path view illustrating a flow based on time in which critical operations in creating distributed communication of independent autonomous vehicles are established, according to one embodiment.

FIG. 9 is a process flow detailing the operations involving distributed communication of independent autonomous vehicles to provide redundancy and performance, according to one embodiment.

Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.

DETAILED DESCRIPTION

Disclosed are a method and system of distributed communication of independent autonomous vehicles to provide redundancy and performance, according to one embodiment. FIG. 1 is a network view 150 of a communication being sent to a central server by at least one of a set of autonomous vehicles, each of the set of autonomous vehicles being communicatively coupled with one another through peer-to-peer communication sessions in an ad-hoc network, according to one embodiment. In particular, FIG. 1 shows a central server 100, a wide area network 101, a memory 102, a processor 104, a database 106, a set of autonomous vehicles 108, a geographically proximate area 110, an ad-hoc network 112, a peer-to-peer communication session 114, an error condition 116, a non-functional autonomous vehicle 118, a communication 120, and a centralized communication path 122.

FIG. 1 illustrates a number of operations between the central server 100 and/or ones of the set of autonomous vehicles 108. The set of autonomous vehicles 108 may include any number of autonomous vehicles 200 operating in a geographically proximate area 110 and/or an ad-hoc network 112. In one embodiment, autonomous vehicles 200 (shown in FIG. 2) of the set of autonomous vehicles 108 may need to be part of a communication network and/or coupled with and/or recognized by the central server 100. Peer-to-peer communication sessions 114 may be established between each of the set of autonomous vehicles 108 through the ad-hoc network 112. The peer-to-peer communication sessions 114 may be established based on a present geo-spatial location 708 of each of the ones of the set of autonomous vehicles 108 (e.g., based on the present geo-spatial location 708 being in the geographically proximate area 110 and/or geo-defined region of the ad-hoc network 112).

The peer-to-peer communication sessions 114 may enable geo-spatial data 504, telemetry data 506, and/or status data 408 to be communicated to and/or stored on other autonomous vehicles 200 of the set of autonomous vehicles 108 without need of the wide area network 101 and/or the central server 100. In one embodiment, autonomous vehicles 200 of the set of autonomous vehicles 108 may prefer the peer-to-peer communication sessions 114 over the centralized communication path 122 for relaying certain data (e.g., data that may only be relevant for a particular time, trip and/or context).

Circle ‘1’ of FIG. 1 illustrates an error condition 116 being detected in an operational mode 404 of the non-functional autonomous vehicle 118 through the ad-hoc network 112 (e.g., being communicated from the non-functional autonomous vehicle 118 to another vehicle of the set of autonomous vehicles 108 via the peer-to-peer communication session 114). The error condition 116 may be communicated and/or detected when the non-functional autonomous vehicle 118 loses communication with the central server 100 and/or may be associated with an operational mode 404 of the non-functional autonomous vehicle 118 that has lost communication with the central server 100. The loss of communication with the central server 100 may be due to a network failure, a hardware failure, a mechanical failure, and an electrical failure. The error condition 116 may be indicated (e.g., communicated) to all autonomous vehicles 200 of the set of autonomous vehicles 108 and/or to a particular autonomous vehicle 200 (e.g., the autonomous vehicle 200 in a closest physical proximity 510 to the non-functional autonomous vehicle 118 and/or a designated node of the set of autonomous vehicles 108).

In one embodiment, centralized communication paths 122 may be established between each ones of the set of autonomous vehicles 108 and the central server 100 through the wide area network 101 (e.g., an Internet protocol network). Circle ‘2’ shows the communication 120 being sent by the autonomous vehicle 200 of the set of autonomous vehicles 108 through the centralized communication path 122 to the central server 100. The autonomous vehicle 200 that detects the error condition 116 in the operational mode 404 of the non-functional autonomous vehicle 118 may communicate instructions back to the non-functional autonomous vehicle 118 and/or may send the communication 120 to the central server 100 through the centralized communication path 122. In one embodiment, only one communication 120 may be relayed through the wide area network 101 to the central server 100. For example, by the designated node and/or autonomous vehicle 200 that received the error condition 116 indication may send the communication 120 to the central server 100. The communication 120 may include the detected error condition 116, data communicated in the peer-to-peer communication sessions 114, and/or data regarding the status of each of the autonomous vehicles 200 in the set of autonomous vehicles 108. The decentralized communication paths and centralized communication paths 122 may work in concert to provide distributed communication of independent autonomous vehicles 200, providing redundancy and performance.

FIG. 2 is a functional block diagram 250 illustrating an autonomous vehicle, according to an example embodiment. The autonomous vehicle 200 (e.g., one of the set of autonomous vehicles 108) could be configured to operate fully or partially in an autonomous mode. For example, the autonomous vehicle 200 (e.g., a land-based vehicle, an aquatic vehicle and/or an aerial vehicle) could control itself while in the autonomous mode, and may be operable to determine a current state of the autonomous vehicle 200 and/or its environment, determine a predicted behavior of at least one other entity (e.g., vehicle, pedestrian, biker, animal) in the environment, determine a confidence level that may correspond to a likelihood of the at least one other vehicle to perform the predicted behavior, and/or control the autonomous vehicle 200 based on the determined information. While in autonomous mode, the autonomous vehicle 200 may be configured to operate without human interaction.

The autonomous vehicle 200 could include various subsystems such as a computer system 201, a propulsion system 208, a sensor system 215, a control system 230, one or more peripherals 249, as well as a power supply 258. The autonomous vehicle 200 may include more or fewer subsystems and each subsystem could include multiple elements. Further, each of the subsystems and elements of autonomous vehicle 200 could be interconnected. Thus, one or more of the described functions of the autonomous vehicle 200 may be divided up into additional functional or physical components, or combined into fewer functional or physical components. In some further examples, additional functional and/or physical components may be added to the examples illustrated by FIG. 2.

The propulsion system 208 may include components operable to provide powered motion for the autonomous vehicle 200. Depending upon the embodiment, the propulsion system 208 could include an engine/motor 210, an energy source 212, a transmission 214, and/or tires/wheels 216. The engine/motor 210 could be any combination of an internal combustion engine, an electric motor, steam engine, Stirling engine, a solar powered engine, or other types of engines and/or motors. In some embodiments, the engine/motor 210 may be configured to convert energy source 212 into mechanical energy. In some embodiments, the propulsion system 208 could include multiple types of engines and/or motors. For instance, a gas-electric hybrid vehicle could include a gasoline engine and an electric motor. Other examples are possible.

The energy source 212 could represent a source of energy that may, in full or in part, power the engine/motor 210. That is, the engine/motor 210 could be configured to convert the energy source 212 into mechanical energy. Examples of energy sources 212 include gasoline, diesel, other petroleum-based fuels, propane, other compressed gas-based fuels, ethanol, solar panels, batteries, and other sources of electrical power. The energy source(s) 212 could additionally or alternatively include any combination of fuel tanks, batteries, capacitors, and/or flywheels. The energy source 212 could also provide energy for other systems of the autonomous vehicle 200.

The transmission 214 could include elements that are operable to transmit mechanical power from the engine/motor 210 to the wheels/tires 216. To this end, the transmission 214 could include a gearbox, clutch, differential, and drive shafts. The transmission 214 could include other elements. The drive shafts could include one or more axles that could be coupled to the one or more wheels/tires 216.

The wheels/tires 216 of autonomous vehicle 200 could be configured in various formats, including a unicycle, bicycle/motorcycle, tricycle, or a four-wheel format, a treaded system. Other wheel/tire geometries are possible, such as those including six or more wheels. Any combination of the wheels/tires 216 of autonomous vehicle 200 may be operable to rotate differentially with respect to other wheels/tires 216. The wheels/tires 216 could represent at least one wheel that is fixedly attached to the transmission 214 and at least one tire coupled to a rim of the wheel that could make contact with the driving surface. The wheels/tires 216 could include any combination of metal and rubber, or another combination of materials. In one embodiment, the wheels/tires 216 may include a wheel encoding sensor.

The sensor system 215 may include a number of sensors configured to sense information about the environment of the autonomous vehicle 200. For example, the sensor system 215 could include a Global positioning system (GPS) 218, an accelerometer sensor 219, an inertial measurement unit (IMU) 220, a gyroscopic sensor 221, a Radar unit 222, a wheel encoding sensor 223, a laser rangefinder/LIDAR unit 224, a compass sensor 225, a camera 226, a stereo optical sensor 227, and/or an ultrasound unit 228. The sensor system 215 could also include sensors configured to monitor internal systems of the autonomous vehicle 200 (e.g., O.sub.2 monitor, fuel gauge, engine oil temperature). Other sensors are possible as well. One or more of the sensors included in sensor system 215 could be configured to be actuated separately and/or collectively in order to modify a position and/or an orientation of the one or more sensors.

The GPS 218 may be any sensor configured to estimate a geographic location (e.g., geo-spatial data 504) of the autonomous vehicle 200. To this end, GPS 218 could include a transceiver operable to provide information regarding the position of the autonomous vehicle 200 with respect to the Earth. In one embodiment, the GPS 218 may be communicatively coupled with the central server 100 allowing a state of the autonomous vehicle 200 and/or a location of the autonomous vehicle 200 to be relayed to the server. In one embodiment, GPS 218 may be physically associated with the autonomous vehicle 200 so that the vehicle is able to periodically (e.g., continuously, every minute, at a predetermined point) communicate its location to the central server 100 through the wide area network 101 and/or a cellular network. In one embodiment, the global positioning system 218 may be communicatively coupled with the processor 202, a memory 102 (e.g., the data storage 204), the LIDAR unit 224, the RADAR unit 222, and/or the camera 226.

The IMU 220 (Internal Measurement Unit) could include any combination of sensors (e.g., accelerometers and gyroscopes) configured to sense position and orientation changes of the autonomous vehicle 200 based on inertial acceleration. In one embodiment, the IMU 220 may be used to calculate the magnitude of deceleration (e.g., controlled by the deceleration unit 236).

The Radar unit 222 may represent a system that utilizes radio signals to sense objects within the local environment of the autonomous vehicle 200. In some embodiments, in addition to sensing the objects, the Radar unit 222 may additionally be configured to sense the speed and/or heading of the objects. The Radar unit 222 may determine a range, an altitude, a direction, a shape, and/or speed of objects. In one embodiment, the autonomous vehicle 200 may be able to travel on sidewalks, bike lanes, the road 602, in streams, rivers, in the air, and/or may be able to stop at stop lights, wait to cross the road 602, navigate vehicle and/or pedestrian traffic, obey traffic laws etc. The autonomous vehicle 200 may have upon it infrared sensors, laser sensors and/or an on board navigation.

Similarly, the laser rangefinder/LIDAR unit 224 may be any sensor configured to sense objects in the environment in which the autonomous vehicle 200 is located using lasers. Depending upon the embodiment, the laser rangefinder/LIDAR unit 224 could include one or more laser sources, a laser scanner, and one or more detectors, among other system components. The laser rangefinder/LIDAR unit 224 could be configured to operate in a coherent (e.g., using heterodyne detection) or an incoherent detection mode. The LIDAR may use ultraviolet, visible and/or near infrared light to image objects in a degree field of view. The objects imaged by the LIDAR may include non-metallic objects, metallic objects, rocks, people, vehicles, rain, snow, traffic cones, traffic lights and/or signs etc. The LIDAR may be communicatively couple to the navigation server 242 to provide remote sensing capability to the autonomous vehicle 200 such that the autonomous vehicle 200 is autonomously navigable to the destination.

The camera 226 could include one or more devices configured to capture a plurality of images of the environment of the autonomous vehicle 200. The camera 226 could be a still camera 226 or a video camera 226. The camera 226 may be a set of cameras, a single multidirectional camera, a camera with a degree view, a rotating camera, a stereo optic camera etc. The control system 230 may be configured to control operation of the autonomous vehicle 200 and its components. Accordingly, the control system 230 could include various elements include steering unit, throttle 234, brake unit (e.g., the deceleration unit 236), a sensory fusion algorithm 238, a computer vision system 240, a navigation server 242, an obstacle avoidance system 244, and a temperature control algorithm 246.

The control system 230 may include a redundant array of independent disk based algorithm 248 to establish communication sessions between autonomous vehicles 200 (e.g., autonomous vehicles 200 of the set of autonomous vehicles 108). The redundant array of independent disk based algorithm 248 may be based on one or more XOR methods of recreating data stored on each of the adjacent vehicles operating in a present geo-spatial area (e.g., the geographically proximate area 110). The peer-to-peer communication sessions 114 may be established such that a geo-spatial data 504, a status data 408, and a telemetry data 506 may be communicated to adjacent vehicles in the ad-hoc network 112 using the communication sessions. In one embodiment, this data may be stored on the data storage 204 of autonomous vehicles 200 in the ad-hoc network 112 and/or may be recreated using the pieces of data stored across the set of autonomous vehicles 108. The redundant array of independent disk based algorithm 248 may work in concert with the wireless communication system 251 to communicate and/or store data (e.g., telemetry data 506, geo-spatial data 504, status data 408, and/or commands 706 related to a transient operational condition of each of the autonomous vehicles 200, operational instructions 206 that are unlikely to be required beyond a current trip session of each of the autonomous vehicles 200, and/or based on a privacy preference 704 of owners 702 of each of the autonomous vehicles 200).

The steering unit 232 could represent any combination of mechanisms that may be operable to adjust the heading of the autonomous vehicle 200. The throttle 234 could be configured to control, for instance, the operating speed of the engine/motor 210 and, in turn, control the speed of the autonomous vehicle 200. The brake unit could include any combination of mechanisms configured to decelerate the autonomous vehicle 200. The brake unit could use friction to slow the wheels/tires 216. In other embodiments, the brake unit could convert the kinetic energy of the wheels/tires 216 to electric current. The brake unit may take other forms as well.

The sensory fusion algorithm 238 may be an algorithm (or a computer program product storing an algorithm) configured to accept data from the sensor system 215 as an input. The data may include, for example, data representing information sensed at the sensors of the sensor system 215. The sensory fusion algorithm 238 could include, for instance, a Kalman filter, Bayesian network, or other algorithm. The sensory fusion algorithm 238 could further provide various assessments based on the data from sensor system 215. Depending upon the embodiment, the assessments could include evaluations of individual objects and/or features in the environment of autonomous vehicle 200, evaluation of a particular situation, and/or evaluate possible impacts based on the particular situation. The autonomous vehicle 200 may be able to adjust its path to avoid and/or intersect with the curb and/or sidewalk (e.g., traversing the curb to move from a bike lane to a sidewalk or vice versa). Other assessments are possible. The autonomous vehicle 200 may be able to use the sensory fusion algorithm 238 to use multiple sources of data to navigate intersections (e.g., while turning in an intersection) without use of lanes, painted lines, demarcated paths etc.

The computer vision system 240 may be any system operable to process and analyze images captured by camera 226 in order to identify objects and/or features in the environment of autonomous vehicle 200 that could include traffic signals, roadway boundaries, and obstacles. The computer vision system 240 could use an object recognition algorithm, a Structure From Motion (SFM) algorithm, video tracking, and other computer vision techniques. In some embodiments, the computer vision system 240 could be additionally configured to map an environment, track objects, estimate the speed of objects, etc. The navigation and pathing system (e.g., the navigation server 242) may be any system configured to determine a driving path for the autonomous vehicle 200. The navigation and pathing system may additionally be configured to update the driving path dynamically while the autonomous vehicle 200 is in operation. In some embodiments, the navigation and pathing system could be configured to incorporate data from the sensory fusion algorithm 238, the GPS 218, and one or more predetermined maps so as to determine the driving path for autonomous vehicle 200. The obstacle avoidance system 244 could represent a control system 230 configured to identify, evaluate, and avoid or otherwise negotiate potential obstacles (e.g., pedestrians, vehicles, bicycles, sidewalks (e.g., curbs, paved sidewalks), traffic cones, downed tree branches) in the environment of the autonomous vehicle 200. The control system 230 may additionally or alternatively include components other than those shown and described.

Peripherals 249 may be configured to allow interaction between the autonomous vehicle 200 and external sensors, other vehicles, other computer systems, and/or a user. For example, Peripherals 249 could include a wireless communication system 251, the user interface 252, a microphone 254, a speaker 256, and/or the path lighting device 260. The path lighting device 260 may be a set of headlights 262 and/or a light sensor 264 to detect that an environmental brightness is below a threshold luminosity. The speaker 256 may play a message recorded (e.g., through the microphone 254 and/or a mobile device and/or computer that sends the message to the autonomous vehicle 200). The microphone 254 may pick up and/or record noise from the autonomous vehicle 200's environment. The speaker 256 may play the message (e.g., a message from one passenger of an autonomous vehicle 200 to another passenger of another autonomous vehicle 200) and/or announce actions of the autonomous vehicle 200 (e.g., announce that the autonomous vehicle 200 is rerouting and/or arriving at a destination). In one embodiment, the autonomous vehicle 200 may have one or more turn signals and/or break lights.

The speaker 256, microphone 254, and/or the wireless communication system 251 (e.g., working in concert) may record and/or play an audio message (e.g., from an occupant of an adjacent autonomous vehicle 200), enable the use of voice commands to the autonomous vehicle 200 (e.g., navigation commands), and/or play a radio and/or a television. The wireless communication system 251 may enable the autonomous vehicle 200 to communicate through a network (e.g., the wide area network 101 and/or the ad-hoc network 112) with other autonomous vehicles 200 (e.g., in the ad-hoc network 112, within the geographically proximate area 110, and/or associated with the autonomous vehicle 200 and/or owner 702 (e.g., an autonomous vehicle 200 of a friend)). In one embodiment, this communication may be used to maximize efficiency of routes through collaborative communication of traffic patterns, communicate data, and/or to form a convoy.

In an example embodiment, the Peripherals 249 could provide, for instance, means for a user (e.g., the owner 702) of the autonomous vehicle 200 to interact with the user interface 252. To this end, the user interface 252 could provide information to a user of autonomous vehicle 200. The user interface 252 could also be operable to accept input from the user via a touchscreen. The touchscreen (e.g., the touchscreen 700) may be configured to sense at least one of a position and a movement of a user's finger via capacitive sensing, resistance sensing, or a surface acoustic wave process, among other possibilities. The touchscreen may be capable of sensing finger movement in a direction parallel or planar to the touchscreen surface, in a direction normal to the touchscreen surface, or both, and may also be capable of sensing a level of pressure applied to the touchscreen surface. The touchscreen may be formed of one or more translucent or transparent insulating layers and one or more translucent or transparent conducting layers. The touchscreen may take other forms as well.

In other instances, the Peripherals 249 may provide means for the autonomous vehicle 200 to communicate with devices within its environment. The microphone 254 may be configured to receive audio (e.g., a voice command or other audio input) from a user of the autonomous vehicle 200. Similarly, the speakers 256 may be configured to output audio to the user of the autonomous vehicle 200.

In one example, the wireless communication system 251 could be configured to wirelessly communicate with one or more devices directly or via a communication network. For example, wireless communication system 251 could use 3G cellular communication, such as CDMA, EVDO, GSM/GPRS, or 4G cellular communication, such as WiMAX or LTE. Alternatively, wireless communication system 251 could communicate with a wireless local area network (WLAN), for example, using WiFi. In some embodiments, wireless communication system 251 could communicate directly with a device, for example, using an infrared link, Bluetooth, or ZigBee. Other wireless protocols, such as various vehicular communication systems, are possible within the context of the disclosure. For example, the wireless communication system 251 could include one or more dedicated short range communication 120 s (DSRC) devices that could include public and/or private data communications between vehicles and/or roadside stations. The wireless communication system 251 may also enable the autonomous vehicle 200 to communicate and/or coordinate with other autonomous vehicles 200 (e.g., through communication sessions over the ad-hoc network 112).

The power supply 258 may provide power to various components of autonomous vehicle 200 and could represent, for example, a rechargeable lithium-ion, lithium-sulfur, or lead-acid battery. In some embodiments, one or more banks of such batteries could be configured to provide electrical power. Other power supply 258 materials and configurations are possible. In some embodiments, the power supply 258 and energy source 212 could be implemented together, as in some all-electric cars. In one embodiment, the autonomous vehicle 200 may autonomously direct itself to a charging station (e.g., a set non-transitory charging stations, a nearest charging station, a nearest preapproved (e.g., claimed) charging station) and/or conduct necessary operations to charge itself when an energy supply reaches a threshold level, at a certain time of day, when a certain amount of time has elapsed, when a certain distance has been traveled etc.

Many or all of the functions of autonomous vehicle 200 (e.g., the autonomous vehicle 200) could be controlled by computer system 201. Computer system 201 may include at least one processor 202 (which could include at least one microprocessor 104) that executes instructions 206 stored in a non-transitory computer readable medium, such as the data storage 204. The processor 202 may be communicatively coupled to the central server 100 through a wireless network (e.g., the network of FIG. 1) to autonomously navigate the autonomous vehicle 200 to a destination specified by the central server 100. The computer system 201 may also represent a plurality of computing devices that may serve to control individual components or subsystems of the autonomous vehicle 200 in a distributed fashion.

In some embodiments, data storage 204 may contain instructions 206 (e.g., program logic) executable by the processor 202 to execute various functions of autonomous vehicle 200, including those described above in connection with FIG. 2. Data storage 204 may contain additional instructions 206 as well, including instructions 206 to transmit data to, receive data from, interact with, and/or control one or more of the propulsion system 208, the sensor system 215, the control system 230, and the Peripherals 249. In addition to the instructions 206, the data storage 204 may store data such as roadway maps, path information, among other information. Such information may be used by the autonomous vehicle 200 and computer system 201 at during the operation of the autonomous vehicle 200 in the autonomous, semi-autonomous, and/or manual modes. The autonomous vehicle 200 may include a user interface 252 for providing information to or receiving input from a user of the autonomous vehicle 200. The user interface 252 could control or enable control of content and/or the layout of interactive images that could be displayed on the touchscreen. Further, the user interface 252 could include one or more input/output devices within the set of Peripherals 249, such as the wireless communication system 251, the touchscreen, the microphone 254, and the speaker 256.

The computer system 201 may control the function of the autonomous vehicle 200 based on inputs received from various subsystems (e.g., propulsion system 208, sensor system 215, and control system 230), as well as from the user interface 252. For example, the computer system 201 may utilize input from the control system 230 in order to control the steering unit to avoid an obstacle detected by the sensor system 215 and the obstacle avoidance system 244. Depending upon the embodiment, the computer system 201 could be operable to provide control over many aspects of the autonomous vehicle 200 and its subsystems. The components of autonomous vehicle 200 could be configured to work in an interconnected fashion with other components within or outside their respective systems. For instance, in an example embodiment, the camera 226 could capture a plurality of images that could represent information about a state of an environment of the autonomous vehicle 200 operating in an autonomous mode. The environment could include another vehicle. The computer vision system 240 could recognize the other vehicle as such based on object recognition models stored in data storage 204.

The computer system 201 could carry out several determinations based on the information. For example, the computer system 201 could determine one or more predicted behaviors of the other vehicle. The predicted behavior could be based on several factors including the current state of the autonomous vehicle 200 (e.g., vehicle speed, current lane, etc.) and the current state of the environment of the autonomous vehicle 200 (e.g., speed limit, number of available lanes, position and relative motion of other vehicles, etc.). For instance, in a first scenario, if another vehicle is rapidly overtaking the autonomous vehicle 200 from a left-hand lane, while autonomous vehicle 200 is in a center lane, one predicted behavior could be that the other vehicle will continue to overtake the autonomous vehicle 200 from the left-hand lane.

In a second scenario, if the other vehicle is overtaking autonomous vehicle 200 in the left-hand lane, but a third vehicle traveling ahead of autonomous vehicle 200 is impeding further progress in the left-hand lane, a predicted behavior could be that the other vehicle may cut in front of autonomous vehicle 200. The computer system 201 could further determine a confidence level corresponding to each predicted behavior. For instance, in the first scenario, if the left-hand lane is open for the other vehicle to proceed, the computer system 201 could determine that it is highly likely that the other vehicle will continue to overtake autonomous vehicle 200 and remain in the left-hand lane. Thus, the confidence level corresponding to the first predicted behavior (that the other vehicle will maintain its lane and continue to overtake) could be high, such as 90%.

In the second scenario, where the other vehicle is blocked by a third vehicle, the computer system 201 could determine that there is a 50% chance that the other vehicle may cut in front of autonomous vehicle 200 since the other vehicle could simply slow and stay in the left-hand lane behind the third vehicle. Accordingly, the computer system 201 could assign a 50% confidence level (or another signifier) to the second predicted behavior in which the other vehicle may cut in front of the autonomous vehicle 200.

In the example embodiment, the computer system 201 could work with data storage 204 and other systems in order to control the control system 230 based on at least on the predicted behavior, the confidence level, the current state of the autonomous vehicle 200, and the current state of the environment of the autonomous vehicle 200. In the first scenario, the computer system 201 may elect to adjust nothing as the likelihood (confidence level) of the other vehicle staying in its own lane is high. In the second scenario, the computer system 201 may elect to control autonomous vehicle 200 to slow down slightly (by reducing throttle 234) or to shift slightly to the right (by controlling steering unit) within the current lane in order to avoid a potential collision. Other examples of interconnection between the components of autonomous vehicle 200 are numerous and possible within the context of the disclosure.

Although FIG. 2 shows various components of autonomous vehicle 200, i.e., wireless communication system 251, computer system 201, data storage 204, and user interface 252, as being integrated into the autonomous vehicle 200, one or more of these components could be mounted or associated separately from the autonomous vehicle 200. For example, data storage 204 could, in part or in full, exist separate from the autonomous vehicle 200. Thus, the autonomous vehicle 200 could be provided in the form of device elements that may be located separately or together. The device elements that make up autonomous vehicle 200 could be communicatively coupled together in a wired and/or wireless fashion.

FIG. 3 shows a network identification table 350 illustrating data relationships between the ad-hoc network and the set of autonomous vehicles of FIG. 1, according to one embodiment. In particular, FIG. 3 shows a unique identifier 302, a geo-defined area 304, a geo-fence data 306, a number of autonomous vehicles 308, and a threshold number of autonomous vehicles 310.

Each ad-hoc network 112 may have an associated unique identifier 302 maintained in the network identification table. The network identification table may be published to the central server 100 and/or associated adjacent ad-hoc networks 112 (e.g., through the communication 120 sent through the centralized communication path 122). The unique identifier 302 of the ad-hoc network 112 may be associated with a geo-defined region in which autonomous vehicles 200 may enter/depart and/or may automatically persist at the geo-defined area 304 (e.g., defined by the geo-fence data 306 associated with the geo-defined region).

The geo-fence data 306 may define the geo-defined area 304, the geo-defined region and/or the geo-fenced region 502. The geo-fence data 306 may include a set of geo-spatial coordinates (e.g., geo-spatial coordinates defining the boundaries of the geo-fenced region 502). The number of autonomous vehicles 308 may be the amount of autonomous vehicles 200 operating in the ad-hoc network 112 and/or geo-defined area 304. The number of autonomous vehicles 308 may be the number of the set of autonomous vehicles 108. The threshold number of autonomous vehicles 310 may be a minimum and/or maximum number of autonomous vehicles 308.

In one embodiment, the autonomous vehicle 200 may determine whether the threshold number of autonomous vehicles 310 is satisfied before leaving the present ad-hoc network 112 for another ad-hoc network 112. The autonomous vehicle 200 may take into account the number of autonomous vehicles 308 existing in the present ad-hoc network 112 and/or in the other ad-hoc network 112. The autonomous vehicle 200 may prefer to change ad-hoc networks 112 if the change (e.g., loss of the autonomous vehicle 200 from the present ad-hoc network 112) will not drop the number of autonomous vehicles 308 of the present ad-hoc network 112 below the threshold number of autonomous vehicles 310 and/or will not cause the number of autonomous vehicles 308 of the other ad-hoc network 112 to exceed a threshold number of autonomous vehicles 310.

FIG. 4 is a table view 450 illustrating the data relationships between the set of autonomous vehicles, the ad-hoc network, and the peer-to-peer communication session of FIG. 1, according to one embodiment. FIG. 4 shows a local index 402, an operational mode 404, and a status data 408.

The set of autonomous vehicles 108 and/or each of the autonomous vehicles 200 of the set of autonomous vehicles 108 may store, access, and/or update the local index 402. In one embodiment, the local index 402 may include information regarding available autonomous vehicles 200 (e.g., autonomous vehicles of the set of autonomous vehicles 108). Autonomous vehicles 200 may use the abovementioned information to appropriately and/or optimally store information, minimizing storage requirements associated with autonomous vehicles 200 no longer available (e.g., due to changes in location of autonomous vehicles 200, changes in the number of autonomous vehicles 308 in a given ad-hoc network 112, and/or privacy preferences 704 of owners 702 of autonomous vehicles 200).

The operational mode 404 may be the status of the autonomous vehicle 200. Operational modes 404 may be an overall status and/or specific to particular systems of the autonomous vehicle 200 (e.g., electrical, mechanical, computer, hardware, and/or network (e.g., loss of connection with the central server 100). An error in the operational mode(s) 404 may be categorized as the error condition 116. The error condition 116 may include details regarding a nature of the error, a time of the error, and/or a request for correction of the error (e.g., from the central server 100 and/or an adjacent autonomous vehicle 200). The status data 408 may include information regarding the status of the autonomous vehicles 200 in the set of autonomous vehicles 108. The status data 408 may include update information regarding the operational mode 404 of the non-functional autonomous vehicle 118 and/or instructions 206 sent to the non-functional (e.g., emergency commands 604).

FIG. 5 is a network overlap view 550 of a network geo-spatial overlap between two ad-hoc networks, according to one embodiment. FIG. 5 shows a geo-fenced region 502A-C, a geo-spatial data 504, a telemetry data 506, a closest physical proximity 510, a network geo-spatial overlap 512, a node 514, an existing ad-hoc network 516, a signal extender 518, a communication link 520, a changed location 522, and an adjacently established ad-hoc network 524.

Ad-hoc network 112A may exist at the geo-fenced region 502A. The geo-fenced region 502A and/or the ad-hoc network 112A may be associated with a unique identifier 302. The geographically proximate area 110A may be and/or may include the geo-fenced region 502A. In one embodiment, the geo-spatial data 504, the status data 408, and/or the telemetry data 506 may be communicated through the peer-to-peer communication sessions 114. A communication preference between adjacent ones of the set of autonomous vehicles 108 may be based on the closest physical proximity 510 of active ones of the set of autonomous vehicles 108 (e.g., ones of the set of autonomous vehicles 108 indicated as available in the local index 402). The peer-to-peer communication session 114 may be generated between only a particular autonomous vehicle and/or the autonomous vehicle 200 in the closest physical proximity 510 to the particular autonomous vehicle.

Each ad-hoc network 112 may maintain the geo-fenced region 502 and/or share the geo-fence data 306 with other ad-hoc networks 112 in order to avoid and/or minimize the network geo-spatial overlap 512. The network geo-spatial overlap 512 may be an overlap of the ad-hoc networks 112, the geo-fenced regions 502, the geo-defined regions, the geo-defined areas 304, and/or the geographically proximate areas 110. In one embodiment, geo-fenced regions 502 (e.g., geo-defined regions and/or geo-defined areas 304) may be cooperatively adjusted in order to account for and/or correct network geo-spatial overlap 512. In one embodiment, a threshold level of network geo-spatial overlap 512 may be permitted. Autonomous vehicles 200 operating in the overlapping area may continue to operate under the original ad-hoc network 112 with which it was associated (e.g., the ad-hoc network 112 associated with the set of autonomous vehicles 108 of which the autonomous vehicle 200 operating in the network geo-spatial overlap 512 is part). In one embodiment, the autonomous vehicle 200 operating in the overlapping area may choose which ad-hoc network 112 to be associated with (e.g., by accounting for threshold number of autonomous vehicles 310 and/or planned route of the autonomous vehicle 200).

The existing ad-hoc network 516 may be an adjacent ad-hoc network 112 to the ad-hoc network 112A and/or the adjacently established ad-hoc network 524. In one embodiment, each ones of the set of autonomous vehicles 108 may perform as the signal extenders 518, repeating a signal communication (e.g., the peer-to-peer communication session 114) in the existing ad-hoc network 516 in order to strengthen communication between autonomous vehicles 200 in the existing ad-hoc network 516. In the example embodiment of FIG. 5, circle ‘1’ shows the autonomous vehicle 200 in the top left area of the existing ad-hoc network 516 sending the signal communication in the existing ad-hoc network 516. The signal communication strength is strong between the autonomous vehicle 200 in the top left area and the adjacent autonomous vehicles. However, the communication strength is weak between the autonomous vehicle 200 in the top left area and the autonomous vehicle in the bottom right area. In circle ‘2,’ the adjacent autonomous vehicles act as signal extenders 518, repeating the signal communication to the autonomous vehicle in the bottom right area. This practice of signal extension may enable communications (e.g., peer-to-peer communication sessions 114) in the existing ad-hoc network 516 to effectively reach all autonomous vehicles 200 in the existing ad-hoc network 516.

In one embodiment, an autonomous vehicle 200 may leave the existing ad-hoc network 516 in favor of the adjacently established ad-hoc network 524. The communication link 520 between the autonomous vehicle 200 that is leaving the existing ad-hoc network 516 and the existing as-hoc network may be broken based on distance between the autonomous vehicle 200 and the node 514 in the existing ad-hoc network 516. In one embodiment the distance may be a threshold distance from the node 514 (e.g., one of the set of autonomous vehicles 108 and/or the first node 312). The communication link 520 may be a link with others of the set of autonomous vehicles 108 and/or a link with the ad-hoc network 112.

In one embodiment, the distance may be a distance from the geo-fenced region 502B, the geo-defined area 304 associated with the existing ad-hoc location, and/or the geographically proximate area 110B. In one embodiment, the communication link 520 may be broken when the autonomous vehicle 200 enters the geographically proximate area 110C, the geo-fenced region 502C, and/or the geo-defined area 304 associated with the adjacently established ad-hoc network 524. The autonomous vehicle 200 leaving the existing ad-hoc network 516 may announce itself as the first node 312 in the adjacently established ad-hoc network 524 if the autonomous vehicle 200 is the first autonomous vehicle 200 currently in the adjacently established ad-hoc network 524 (e.g., when it reached the changed location 522). The autonomous vehicles 200 of the set of autonomous vehicles 108 associated with the existing ad-hoc network 516 may update local indexes 402 to account for the changed location 522 of the autonomous vehicle 200 that left the existing ad-hoc network 516 and is no longer an available autonomous vehicle 200.

FIG. 6 is a graphical process flow 650 of a non-functional autonomous vehicle of entering a safe mode and parking in a safe parking location, according to one embodiment. In particular, FIG. 6 shows a road 602, an emergency command 604, a safe mode 606, and a safe parking location 608.

In circle ‘1,’ the non-functional autonomous vehicle 118 may communicate the error condition 116 of the operational mode 404 of the non-functional autonomous vehicle 118 to others of the set of autonomous vehicles 108 through the ad-hoc network 112 (e.g., through the peer-to-peer communication session 114 and/or signal communication). The others of the set of autonomous vehicles 108 may send the error command 604 in the communication 120 sent through the centralized communication path 122 to the central server 100. The others of the set of autonomous vehicles 108 may simultaneously communicate emergency commands 604 to the non-functional autonomous vehicle 118. The emergency commands 604 may include instructions 206 and/or data that may help and/or satisfy the needs of the non-functional autonomous vehicle 118. For example, the emergency commands 604 may include geo-spatial data 504, telemetry data 506, sensor data, and/or reboot instructions. In one embodiment, the emergency commands 604 may be communicated by a particular autonomous vehicle 200 (e.g., the first node 312 and/or the autonomous vehicle 200 in the closest physical proximity 510 with the non-functional autonomous vehicle 118). The autonomous vehicle(s) 200 communicating the emergency command 604 and/or the central server 100 may contact emergency services and/or repair services in response to the error condition 116 being detected.

In circle ‘2,’ the non-functional autonomous vehicle 118 may enter the safe mode 606 using the emergency commands 604. The safe mode 606 may be a set of parameters (e.g., a speed, a set of geo-spatial directions, a proximity that must be kept between the non-functional autonomous vehicle 118 and other objects, and/or a communication setting) the non-functional autonomous vehicle 118 may be instructed to use in the case of an error in one or more operational modes 404. The emergency commands 604 may enable the central server 100 and/or other autonomous vehicles 200 to perform further diagnostics regarding the nature and/or details of the error condition 116. In one embodiment, the emergency commands 604 and/or safe mode 606 may enable other autonomous vehicles 200 and/or the central server 100 (e.g., using ones of the set of autonomous vehicles 108) to control and/or safely handle a malfunctioning autonomous vehicle 200 in the ad-hoc network 112 (e.g., an non-functional autonomous vehicle 118 not able to assess the situation and/or generate and/or execute instructions on its own).

In circle ‘3,’ the non-functional autonomous vehicle 118 may exit its area of operation (e.g., the road 602) and/or park itself (e.g., using the emergency commands 604 and/or instructions associated with the safe made) in the safe parking location 608. The safe parking location 608 may be a predetermined location (e.g., a designated safe parking location 608) and/or a location determined to be the safe parking location 608. In one embodiment, the non-functional autonomous vehicle 118 may be instructed to determine (e.g., using the sensors of the non-functional autonomous vehicle 118) where the safe parking location 608 exists. Other autonomous vehicles 200 of the set of autonomous vehicles 108 may determine where the safe parking location 608 exists and/or the central server 100 may determine where the safe parking location 608 exists.

In one embodiment, the safe parking location 608 may be in the geographically proximate area 110, the geo-defined area 304, and/or the geo-fenced region 502 of the ad-hoc network 112. The central server 100 may use data from other autonomous vehicles and/or ad-hoc networks 112 (e.g., all autonomous vehicles 200 and/or ad-hoc networks 112) to determine an upcoming (e.g., in the path of the non-functional autonomous vehicle 118), closest and/or optimal safe parking location 608. The non-functional autonomous vehicle 118 may be removed from the ad-hoc network 112 once in the safe parking location 608 and/or may be passed off to the ad-hoc network 112 associated with the safe parking location 608 if the safe parking location 608 is not associated with the ad-hoc network 112 in which the non-functional autonomous vehicle 118 experienced the error condition 116.

FIG. 7 is a touch screen view 750 illustrating a command and a privacy preference of an owner, according to one embodiment. FIG. 7 shows a touch screen 700, an owner 702, a privacy preference 704, a command 706, a present geo-spatial location 708, and a request 710.

The touch screen 700 may be the user interface 252, a display screen of the autonomous vehicle 200 and/or a mobile device of the owner 702 (e.g., a smart phone, a tablet, and/or a laptop computer). The owner 702 may be the owner of the autonomous vehicle 200. While the example embodiment of FIG. 7 is given in regards to the owner 702, it will be appreciated that the example may apply to a user of the autonomous vehicle 200.

Autonomous vehicles 200 may prefer communications through the ad-hoc network 112 over communications through the centralized communication paths 122 when communicating commands 706 related to a transient operational condition of each of the autonomous vehicles 200, operational instructions 206 that are unlikely to be required beyond a current trip session of each of the autonomous vehicles 200, and/or based on a privacy preference 704 of owners 702 of each of the autonomous vehicles 200. In one embodiment, the touch screen 700 may update the owner 702 about commands 706 received through the ad-hoc network 112. For example, the autonomous vehicle 200 may receive information that there is snow in the geographically proximate area 110 and/or may switch to four wheel drive (e.g., an operational instruction that is unlikely to be required beyond a current trip session of each of the autonomous vehicles 200). The autonomous vehicle 200 may receive a command 706 related to a transient operational condition of each of the autonomous vehicles 200 and/or inform the owner 702 (e.g., “AV3 needs help!”).

The owner 702 may be able to set the privacy preference 704 using the touch screen 700. The owner 702 may be able to opt-out of communications in the ad-hoc network 112 and/or with the central server 100 and/or to not disclose the present geo-spatial location 708 (e.g., geo-spatial data 504) of the autonomous vehicle 200. In one embodiment, the autonomous vehicle 200 may not be included in the set of autonomous vehicles 108 and/or may not be designated as an available autonomous vehicle 200 in a local index 402 if the owner 702 has opted-out of communications with the central server 100 and/or the ad-hoc network 112.

Owners 702 of autonomous vehicles 200 may be able to communicate through the ad-hoc network 112. In one embodiment, an owner 702 may send a request 710 (e.g., to communicate and/or a request 710 for a specific thing) to other owners 702 in the ad-hoc network 112. The owner 702 may be able to accept or deny the request 710 communicated by another owner 702. In one embodiment, the owner 702 may be able to choose what information associated with the autonomous vehicle 200 is shared through the centralized communication path 122 and/or the peer-to-peer communication sessions 114.

FIG. 8 is a critical path view 850 illustrating a flow based on time in which critical operations in creating distributed communication of independent autonomous vehicles 200 are established, according to one embodiment. Operation 802 may establish peer-to-peer communication sessions 114 between nearby ones of a set of autonomous vehicles 108 operating in a geographically proximate area 110, through an ad-hoc network 112, based on a present geo-spatial location 708 of each one of the set of autonomous vehicles 108 in communication proximity to preferred adjacent ones of the set of autonomous vehicles 108. Operation 804 may establish centralized communication paths 122 with each of the set of autonomous vehicles 108 through a wide area network 101 using a central server 100 directly coupled to each of the set of autonomous vehicles 108. Operation 806 may detect an error condition 116 in an operational mode 404 of a non-functional autonomous vehicle 118 that has lost communication with the central server 100 due to a network failure, a hardware failure, a mechanical failure, and/or an electrical failure and a communication 120 is sent to the centralized server. Operation 808 may process the communication 120.

FIG. 9 is a process flow 950 detailing the operations involving distributed communication of independent autonomous vehicles 200 to provide redundancy and performance, according to one embodiment. Peer-to-peer communication sessions 114 may be established between nearby ones of a set of autonomous vehicles 108 operating in a geographically proximate area 110 through an ad-hoc network 112 based on a present geo-spatial location 708 of each one of the set of autonomous vehicles 108 in communication proximity to preferred adjacent ones of the set of autonomous vehicles 108 in operation 902. Centralized communication paths 122 may be established with each of the set of autonomous vehicles 108 directly coupled to a central server 100 through a wide area network 101 in operation 904. In operation 906, the central server 100 may process a communication 120 from adjacent ones of the set of autonomous vehicles 108 when an error condition 116 is detected in an operational mode 404 of a non-functional autonomous vehicle 118 that has lost communication with the central server 100 due to at least one of a network failure, a hardware failure, a mechanical failure, and an electrical failure.

Disclosed are a method, a device and/or a system of distributed communication of independent autonomous vehicles 200 to provide redundancy and performance. In one aspect, a system includes an ad-hoc network 112 and a set of autonomous vehicles 108 operating in a geographically proximate area 110 through which peer-to-peer communication sessions 114 are established between nearby ones of the set of autonomous vehicles 108 through the ad-hoc network 112 based on a present geo-spatial location 708 of each one of the set of autonomous vehicles 108 in communication proximity to preferred adjacent ones of the set of autonomous vehicles 108. The system further includes a wide area network 101 and a central server 100 directly coupled to each of the set of autonomous vehicles 108 to establish centralized communication paths 122 with each of the set of autonomous vehicles 108 through the wide area network 101. The central server 100 processes a communication 120 from adjacent ones of the set of autonomous vehicles 108 when an error condition 116 is detected in an operational mode 404 of a non-functional autonomous vehicle 118 that has lost communication with the central server 100 due to network failure, a hardware failure, a mechanical failure, and an electrical failure.

A communication preference between each of the adjacent ones of the set of autonomous vehicles 108 in the ad-hoc network 112 may be based on a closest physical proximity 510 of active ones of the set of autonomous vehicles 108. The peer-to-peer communication sessions 114 established between the adjacent ones of the set of autonomous vehicles 108 may be established in a manner that provides a geo-spatial data 504, a status data 408, and/or a telemetry data 506 to adjacent vehicles in the ad-hoc network 112 through a redundant array of independent disk based algorithm 248 based on an XOR method of recreating data stored on each of the adjacent vehicles operating in a present geo-spatial area defining each of the adjacent ones of the set of autonomous vehicles 108.

The adjacent ones of the set of autonomous vehicles 108 may periodically refresh local indexes 402 of available adjacent ones of the set of autonomous vehicles 108 (such that the adjacent ones of the set of autonomous vehicles 108 minimize local storage requirements associated with ones of the set of autonomous vehicles 108 that are no longer adjacent based on a changed location 522 of adjacent ones of the set of autonomous vehicles 108 through state based logic that determines which adjacent ones of the set of autonomous vehicles 108 have presently moved into an adjacently established ad-hoc network 524 including a different set of adjacent ones of the set of autonomous vehicles 108).

The ad-hoc networks 112 may maintain a unique identifier 302 in a network identification table that may be published to the central server 100 and/or associated adjacent ad-hoc networks 112. Each of the ad-hoc networks 112 may maintain a geo-fenced region 502 through which each ad-hoc network 112 operates and/or shares geo-fence data 306 with adjacent ad-hoc networks 112 to minimize network geo-spatial overlap 512 between adjacent ad-hoc networks 112. Each of the unique identifiers 302 of the ad-hoc networks 112 may automatically persist at a geo-defined area 304 each of the ad-hoc networks 112 are associated unique identifiers 302 associated with a geo-defined region in which autonomous vehicles 200 enter and/or depart.

A particular autonomous vehicle 200 may determine if there exists a threshold number of other autonomous vehicles 200 in a particular ad-hoc network 112 when determining whether the particular autonomous vehicle 200 should leave an existing ad-hoc network 516 of the particular autonomous vehicle 200 in a favor of an adjacent ad-hoc network 112 to the existing ad-hoc network 516. The particular autonomous vehicle 200 may automatically announce itself as a first node 312 in the adjacent ad-hoc network 112 when it is a first vehicle currently in the adjacent ad-hoc network 112 and/or a communication link 520 between the existing ad-hoc network 516 s may be broken because of distance from a node 514 in the existing ad-hoc network 516.

Each of autonomous vehicles 200 in the existing ad-hoc network 516 may serve as signal extenders 518 by repeating a signal communication in the existing ad-hoc network 516 to facilitate communication strength between autonomous vehicles 200 in the existing ad-hoc network 516. Each of the autonomous vehicles 200 in the existing ad-hoc network 516 may prefer communications through the existing ad-hoc network 516 instead of communications to the central server 100 when communicating commands 706 related to a transient operational condition of each of the autonomous vehicles 200, operational instructions 206 that are unlikely to be required beyond a current trip session of each of the autonomous vehicles 200, and/or based on a privacy preference 704 of owners 702 of each of the autonomous vehicles 200. The owners 702 of each of the autonomous vehicles 200 may optionally elect to opt-out of networked communications in any of the ad-hoc network 112 and/or the wide area network 101.

The adjacent ones of the set of autonomous vehicles 108 may automatically transmit emergency commands 604 to the non-functional autonomous vehicle 118 when the error condition 116 is detected to permit the non-functional autonomous vehicle 118 to enter a safe-mode and navigate to a safe parking location 608 determined based on a visual mapping, a telemetric mapping, and/or a sensory fusion algorithm 238 determining where exists the safe parking location 608. The set of autonomous vehicles 108 may include one or more of a multi-rotor aircraft, a neighborhood rover, an autonomous boat, an autonomous submarine, and/or an autonomous passenger vehicle.

In another aspect, a system includes an ad-hoc network 112 and a set of autonomous vehicles 108 operates in a geographically proximate area 110 through which peer-to-peer communication sessions 114 are established between nearby ones of the set of autonomous vehicles 108 through the ad-hoc network 112 based on a present geo-spatial location 708 of each one of the set of autonomous vehicles 108 in communication proximity to preferred adjacent ones of the set of autonomous vehicles 108. A wide area network 101 and a central server 100 communicatively coupled with each of the set of autonomous vehicles 108 to establish centralized communication paths 122 with each of the set of autonomous vehicles 108 through the wide area network 101. The central server 100 processes a communication 120 from adjacent ones of the set of autonomous vehicles 108 when an error condition 116 is detected in an operational mode 404 of a non-functional autonomous vehicle 118 that has lost communication with the central server 100. A communication preference between each of the adjacent ones of the set of autonomous vehicles 108 is based on a closest physical proximity 510 of active ones of the set of autonomous vehicles 108.

In yet another aspect, a method establishes peer-to-peer communication sessions 114 between nearby ones of a set of autonomous vehicles 108 operating in a geographically proximate area 110, through an ad-hoc network 112, based on a present geo-spatial location 708 of each one of the set of autonomous vehicles 108 in communication proximity to preferred adjacent ones of the set of autonomous vehicles 108. Centralized communication paths 122 are established with each of the set of autonomous vehicles 108 through a wide area network 101, using a central server 100 directly coupled to each of the set of autonomous vehicles 108. A communication 120 from adjacent ones of the set of autonomous vehicles 108 using the central server 100 when an error condition 116 is detected in an operational mode 404 of a non-functional autonomous vehicle 118 that has lost communication with the central server 100 due to a network failure, a hardware failure, a mechanical failure, and an electrical failure.

An example embodiment will now be described. In one embodiment, Joe may own an autonomous car. Joe may be riding in his autonomous car when the autonomous car loses connection with the central server 100. Joe may be able to relax as the autonomous car relays the error condition 116 to other autonomous cars in the ad-hoc network 112 and the communication 120 is communicated to the central server. Joe's autonomous car may be able to continue to operate without incident (e.g., using the emergency commands 604) and/or need for user intervention. Information related to Joe's autonomous car may not be lost as a result of the loss of connection with the central server 100.

Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices, algorithms, analyzers, generators, etc. described herein may be enabled and operated using hardware circuitry (e.g., CMOS based logic circuitry), firmware, software and/or any combination of hardware, firmware, and/or software (e.g., embodied in a machine readable medium). For example, the various electrical structure and methods may be embodied using transistors, logic gates, and electrical circuits (e.g., application specific integrated ASIC circuitry and/or in Digital Signal; Processor DSP circuitry).

In addition, it will be appreciated that the various operations, processes, and methods disclosed herein may be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and may be performed in any order. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. 

What is claimed is:
 1. A system, comprising: an ad-hoc network; a set of autonomous vehicles operating in a geographically proximate area through which peer-to-peer communication sessions are established between nearby ones of the set of autonomous vehicles through the ad-hoc network based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles; a wide area network; and a central server directly coupled to each of the set of autonomous vehicles to establish centralized communication paths with each of the set of autonomous vehicles through the wide area network, wherein the centralized server to process a communication from adjacent ones of the set of autonomous vehicles when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server due to at least one of a network failure, a hardware failure, a mechanical failure, and an electrical failure.
 2. The system of claim 1: wherein a communication preference between each of the adjacent ones of the set of autonomous vehicles in the ad hoc network is based on a closest physical proximity of active ones of the set of autonomous vehicles.
 3. The system of claim 1: wherein the communication sessions established between the adjacent ones of the set of autonomous vehicles are established in a manner that provides at least one of a geo-spatial data, a status data, and a telemetry data to adjacent vehicles in the ad-hoc network through a redundant array of independent disk based algorithm based on at least one of an XOR method of recreating data stored on each of the adjacent vehicles operating in a present geo-spatial area defining each of the adjacent ones of the set of autonomous vehicles.
 4. The system of claim 1: wherein adjacent ones of the set of autonomous vehicles periodically refresh local indexes of available adjacent ones of the set of autonomous vehicles in a manner such that the adjacent ones of the set of autonomous vehicles minimize local storage requirements associated with ones of the set of autonomous vehicles that are no longer adjacent based on a changed location of adjacent ones of the set of autonomous vehicles through state based logic that determines which adjacent ones of the set of autonomous vehicles have presently moved into an adjacently established ad-hoc network comprising a different set of adjacent ones of the set of autonomous vehicles.
 5. The system of claim 4: wherein each of the ad-hoc networks maintain a unique identifier in a network identification table that is published to the central server and associated adjacent ad-hoc networks, and wherein each of the ad-hoc networks maintain a geo-fenced region through which each ad-hoc network operates and shares geo-fence data with adjacent ad-hoc networks to minimize network geo-spatial overlap between adjacent ad-hoc networks.
 6. The system of claim 5: wherein each of the unique identifiers of the ad-hoc networks to automatically persist at a geo-defined area such that each of the ad-hoc networks are associated unique identifiers associated with a geo-defined region in which autonomous vehicles enter and depart.
 7. The system of claim 6: wherein a particular autonomous vehicle to determine if there exists a threshold number of other autonomous vehicles in a particular ad-hoc network when determining whether the particular autonomous vehicle should leave an existing ad-hoc network of the particular autonomous vehicle in a favor of an adjacent ad-hoc network to the existing ad-hoc network, and wherein the particular autonomous vehicle to automatically announce itself as a first node in the adjacent ad-hoc network when it is a first vehicle currently in the adjacent ad-hoc network and a communication link between the existing ad-hoc network is broken because of distance from a node in the existing ad-hoc network.
 8. The system of claim 7: wherein each of autonomous vehicles in the existing ad-hoc network to serve as signal extenders by repeating a signal communication in the existing ad-hoc network to facilitate communication strength between autonomous vehicles in the existing ad-hoc network, and wherein each of the autonomous vehicles in the existing ad-hoc network to prefer communications through the existing ad-hoc network instead of communications to the central server when communicating commands related to at least one of a transient operational condition of each of the autonomous vehicles, operational instructions that are unlikely to be required beyond a current trip session of each of the autonomous vehicles, and based on a privacy preference of owners of each of the autonomous vehicles.
 9. The system of claim 8: wherein each of the owners of each of the autonomous vehicles optionally elect to opt-out of networked communications in any of the ad-hoc network and the centralized network.
 10. The system of claim 1: wherein adjacent ones of the set of autonomous vehicles automatically transmit emergency commands to the non-functional vehicle when the error condition is detected to permit the non-functional vehicle to enter a safe-mode and navigate to a safe parking location determined based on at least one of a visual mapping, a telemetric mapping, and a sensory fusion algorithm determining where exists the safe parking location, and wherein each of the set of autonomous vehicles is any one of a multi-rotor aircraft, a neighborhood rover, an autonomous boat, an autonomous submarine, and an autonomous passenger vehicle,
 11. A system, comprising: an ad-hoc network; a set of autonomous vehicles operating in a geographically proximate area through which peer-to-peer communication sessions are established between nearby ones of the set of autonomous vehicles through the ad-hoc network based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles; a wide area network; and a central server communicatively coupled with each of the set of autonomous vehicles to establish centralized communication paths with each of the set of autonomous vehicles through the wide area network, wherein the centralized server to process a communication from adjacent ones of the set of autonomous vehicles when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server, and wherein a communication preference between each of the adjacent ones of the set of autonomous vehicles is based on a closest physical proximity of active ones of the set of autonomous vehicles.
 12. The system of claim 11: wherein the lost communication is due to at least one of a network failure, a hardware failure, a mechanical failure, and an electrical failure.
 13. The system of claim 11: wherein the communication sessions established between the adjacent ones of the set of autonomous vehicles are established in a manner that provides at least one of a geo-spatial data, a status data, and a telemetry data to adjacent vehicles in the ad-hoc network through a redundant array of independent disk based algorithm based on at least one of an XOR method of recreating data stored on each of the adjacent vehicles operating in a present geo-spatial area defining each of the adjacent ones of the set of autonomous vehicles.
 14. The system of claim 11: wherein adjacent ones of the set of autonomous vehicles periodically refresh local indexes of available adjacent ones of the set of autonomous vehicles in a manner such that the adjacent ones of the set of autonomous vehicles minimize local storage requirements associated with ones of the set of autonomous vehicles that are no longer adjacent based on a changed location of adjacent ones of the set of autonomous vehicles through state based logic that determines which adjacent ones of the set of autonomous vehicles have presently moved into an adjacently established ad-hoc network comprising a different set of adjacent ones of the set of autonomous vehicles.
 15. The system of claim 11: wherein each of the ad-hoc networks maintain a unique identifier in a network identification table that is published to the central server and associated adjacent ad-hoc networks, wherein each of the ad-hoc networks maintain a geo-fenced region through which each ad-hoc network operates and shares geo-fence data with adjacent ad-hoc networks to minimize network geo-spatial overlap between adjacent ad-hoc network.
 16. The system of claim 15: wherein each of the unique identifiers of the ad-hoc networks to automatically persist at a geo-defined area such that each of the ad-hoc networks are associated unique identifiers associated with a geo-defined region in which autonomous vehicles enter and depart.
 17. The system of claim 16: wherein a particular autonomous vehicle to determine if there exists a threshold number of other autonomous vehicles in a particular ad-hoc network when determining whether the particular autonomous vehicle should leave an existing ad-hoc network of the particular autonomous vehicle in a favor of an adjacent ad-hoc network to the existing ad-hoc network, and wherein the particular autonomous vehicle to automatically announce itself as a first node in the adjacent ad-hoc network when it is a first vehicle currently in the adjacent ad-hoc network and a communication link between the existing ad-hoc network is broken because of distance from a node in the existing ad-hoc network.
 18. The system of claim 17: wherein each of autonomous vehicles in the existing ad-hoc network to serve as signal extenders by repeating a signal communication in the existing ad-hoc network to facilitate communication strength between autonomous vehicles in the existing ad-hoc network, and wherein each of the autonomous vehicles in the existing ad-hoc network to prefer communications through the existing ad-hoc network instead of communications to the central server when communicating commands related to at least one of a transient operational condition of each of the autonomous vehicles, operational instructions that are unlikely to be required beyond a current trip session of each of the autonomous vehicles, and based on a privacy preference of owners of each of the autonomous vehicles.
 19. The system of claim 18: wherein each of the owners of each of the autonomous vehicles optionally elect to opt-out of networked communications in any of the ad-hoc network and the centralized network.
 20. The system of claim 11: wherein adjacent ones of the set of autonomous vehicles automatically transmit emergency commands to the non-functional vehicle when the error condition is detected to permit the non-functional vehicle to enter a safe-mode and navigate to a safe parking location determined based on at least one of a visual mapping, a telemetric mapping, and a sensory fusion algorithm determining where exists the safe parking location, and wherein each of the set of autonomous vehicles is any one of a multi-rotor aircraft, a neighborhood rover, an autonomous boat, an autonomous submarine, and an autonomous passenger vehicle.
 21. A method, comprising: establishing peer-to-peer communication sessions between nearby ones of a set of autonomous vehicles operating in a geographically proximate area, through an ad-hoc network, based on a present geo-spatial location of each one of the set of autonomous vehicles in communication proximity to preferred adjacent ones of the set of autonomous vehicles; establishing, using a central server directly coupled to each of the set of autonomous vehicles, centralized communication paths with each of the set of autonomous vehicles through a wide area network, processing a communication from adjacent ones of the set of autonomous vehicles using the centralized server when an error condition is detected in an operational mode of a non-functional vehicle that has lost communication with the central server due to at least one of a network failure, a hardware failure, a mechanical failure, and an electrical failure.
 22. The method of claim 21, further comprising: basing a communication preference between each of the adjacent ones of the set of autonomous vehicles on a closest physical proximity of active ones of the set of autonomous vehicles.
 23. The method of claim 21, further comprising: establishing the communication sessions established between the adjacent ones of the set of autonomous vehicles in a manner that provides at least one of a geo-spatial data, a status data, and a telemetry data to adjacent vehicles in the ad-hoc network through a redundant array of independent disk based algorithm based on at least one of an XOR method of recreating data stored on each of the adjacent vehicles operating in a present geo-spatial area defining each of the adjacent ones of the set of autonomous vehicles.
 24. The method of claim 21, further comprising: enabling adjacent ones of the set of autonomous vehicles to periodically refresh local indexes of available adjacent ones of the set of autonomous vehicles in a manner such that the adjacent ones of the set of autonomous vehicles minimize local storage requirements associated with ones of the set of autonomous vehicles that are no longer adjacent based on a changed location of adjacent ones of the set of autonomous vehicles through state based logic that determines which adjacent ones of the set of autonomous vehicles have presently moved into an adjacently established ad-hoc network comprising a different set of adjacent ones of the set of autonomous vehicles.
 25. The method of claim 24, further comprising: permitting each of the ad-hoc networks to maintain a unique identifier in a network identification table that is published to the central server and associated adjacent ad-hoc networks, wherein each of the ad-hoc networks maintain a geo-fenced region through which each ad-hoc network operates and shares geo-fence data with adjacent ad-hoc networks to minimize network geo-spatial overlap between adjacent ad-hoc network.
 26. The method of claim 21, further comprising: enabling the unique identifiers of the ad-hoc networks to automatically persist at a geo-defined area such that each of the ad-hoc networks are associated unique identifiers associated with a geo-defined region in which autonomous vehicles enter and depart; and enabling adjacent ones of the set of autonomous vehicles to automatically transmit emergency commands to the non-functional vehicle when the error condition is detected to permit the non-functional vehicle to enter a safe-mode and navigate to a safe parking location determined based on at least one of a visual mapping, a telemetric mapping, and a sensory fusion algorithm determining where exists the safe parking location, wherein each of the set of autonomous vehicles is any one of a multi-rotor aircraft, a neighborhood rover, an autonomous boat, an autonomous submarine, and an autonomous passenger vehicle.
 27. The method of claim 26: wherein a particular autonomous vehicle to determine if there exists a threshold number of other autonomous vehicles in a particular ad-hoc network when determining whether the particular autonomous vehicle should leave an existing ad-hoc network of the particular autonomous vehicle in a favor of an adjacent ad-hoc network to the existing ad-hoc network, and wherein the particular autonomous vehicle to automatically announce itself as a first node in the adjacent ad-hoc network when it is a first vehicle currently in the adjacent ad-hoc network and a communication link between the existing ad-hoc network is broken because of distance from a node in the existing ad-hoc network.
 28. The system of claim 27: wherein each of autonomous vehicles in the existing ad-hoc network to serve as signal extenders by repeating a signal communication in the existing ad-hoc network to facilitate communication strength between autonomous vehicles in the existing ad-hoc network, and wherein each of the autonomous vehicles in the existing ad-hoc network to prefer communications through the existing ad-hoc network instead of communications to the central server when communicating commands related to at least one of a transient operational condition of each of the autonomous vehicles, operational instructions that are unlikely to be required beyond a current trip session of each of the autonomous vehicles, and based on a privacy preference of owners of each of the autonomous vehicles.
 29. The system of claim 28: wherein each of the owners of each of the autonomous vehicles optionally elect to opt-out of networked communications in any of the ad-hoc network and the centralized network.
 30. The system of claim 21: wherein adjacent ones of the set of autonomous vehicles automatically transmit emergency commands to the non-functional vehicle when the error condition is detected to permit the non-functional vehicle to enter a safe-mode and navigate to a safe parking location determined based on at least one of a visual mapping, a telemetric mapping, and a sensory fusion algorithm determining where exists the safe parking location, and wherein each of the set of autonomous vehicles is any one of a multi-rotor aircraft, a neighborhood rover, an autonomous boat, an autonomous submarine, and an autonomous passenger vehicle. 